package com.abing.starry.model.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
/**
 * @Author CaptainBing
 * @Date 2023/11/8 22:16
 * @Description
 */
@Data
@Builder
@TableName(value = "user")
@NoArgsConstructor
@AllArgsConstructor
public class UserEntity implements Serializable {

    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_UUID)
    @ExcelProperty("ID")
    private String id;

    /**
     * 用户账号
     */
    @ExcelProperty("用户账号")
    private String userAccount;

    /**
     * 用户密码
     */
    @ExcelProperty("用户密码")
    private String userPassword;
    /**
     * accessKey
     */
    @ExcelProperty("accessKey")
    private String accessKey;
    /**
     * secretKey
     */
    @ExcelProperty("secretKey")
    private String secretKey;

    /**
     * 开放平台id
     */
    @ExcelProperty("开放平台id")
    private String unionId;

    /**
     * 公众号openId
     */
    @ExcelProperty("公众号openId")
    private String mpOpenId;

    /**
     * 性别 0未知 1男 2女
     */
    @ExcelProperty("性别")
    private Integer gender;

    /**
     * 用户昵称
     */
    @ExcelProperty("用户昵称")
    private String userName;

    /**
     * 用户头像
     */
    @ExcelProperty("用户头像")
    private String userAvatar;

    /**
     * 用户简介
     */
    @ExcelProperty("用户简介")
    private String userProfile;

    /**
     * 用户角色：user/admin/ban
     */
    @ExcelProperty("用户角色")
    private String userRole;

    /**
     * 创建时间
     */
    @ExcelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Long createTime;

    /**
     * 更新时间
     */
    @ExcelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateTime;

    /**
     * 是否删除
     */
    @TableLogic
    @ExcelProperty("是否删除")
    private Integer deleted;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
